package com.ztgf.pay.models.dto;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.ztgf.common.dto.BaseDTO;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 用户信息表DTO
 *
 * @author mxli
 * @Date 2020-07-30 12:13:56
 */
@Data
@TableName("pay_user")
@ApiModel(value="用户信息表对象", description="用户信息表对象")
public class PayUserDTO extends BaseDTO implements Serializable {

    @ApiModelProperty(value = "乐观锁")
    private Integer revision;
    @ApiModelProperty(value = "创建人")
    private Long createUserId;
    @ApiModelProperty(value = "更新人")
    private Long updateUserId;
    @ApiModelProperty(value = "用户id 企业：店铺id，个人：用户id")
    private Long userId;
    @ApiModelProperty(value = "用户名称 企业：公司名称，个人：用户名称")
    private String userName;
    @ApiModelProperty(value = "类型 0个人、1公司")
    private Integer type;
    @ApiModelProperty(value = "法人姓名 公司户需要")
    private String legalName;
    @ApiModelProperty(value = "法人证件类型 公司户需要")
    private String legalCredentialsType;
    @ApiModelProperty(value = "法人证件号码 公司户需要")
    private String legalCredentialsNo;
    @ApiModelProperty(value = "营业执照id 公司户需要")
    private String businessLicenseNo;
    @ApiModelProperty(value = "用户电话 公司户银行开户电话")
    private String userMobile;
    @ApiModelProperty(value = "用户邮箱")
    private String userEmail;
    @ApiModelProperty(value = "用户地址")
    private String userAddress;

    @ApiModelProperty(value = "中金客户号")
    private String zjClientNo;
    @ApiModelProperty(value = "中金平台客户号")
    private String zjPlatNo;
    @ApiModelProperty(value = "中金资金账号")
    private String zjMoneyNo;
    @ApiModelProperty(value = "中金户名")
    private String zjAccountName;
    @ApiModelProperty(value = "中金银行电子账号")
    private String zjBankElectronicNo;
    @ApiModelProperty(value = "中金电子账户归属支行号")
    private String zjBankNo;
    @ApiModelProperty(value = "中金电子账号归属支行名称")
    private String zjBankName;
    @ApiModelProperty(value = "中金账户码")
    private String zjAccountNo;
    @ApiModelProperty(value = "状态 0创建中、1进件中、2成功、3失败")
    private Integer status;
    @ApiModelProperty(value = "账户类型( 1:客户资金账户 3:合作方收益账户 4:手续费账户)")
    private Integer accountType;


    @ApiModelProperty(value = "不可提现金额")
    private BigDecimal noWithdrawMoney;
    @ApiModelProperty(value = "初始化不可提现金额")
    private BigDecimal noWithdrawMoneyInit;

    @ApiModelProperty("不可提现金额设置时间")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")//gosn
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")//输入字符串
    @JSONField(format = "yyyy-MM-dd HH:mm:ss")//fastjson
    @TableField("no_withdraw_money_set_time")
    protected Date noWithdrawMoneySetTime;
}